home *** CD-ROM | disk | FTP | other *** search
- ;;; Escribe en pantalla si existe un fichero.
-
- JMP Inicio ; Salta al verdadero inicio.
-
- Fichero DB 'prueba.bin',0 ; El fichero que vamos a ver si existe.
- ; Los mensajes de exito o fracaso (encontrado o no)
- ; Los números 0dh y 0ah que aparecen son para hacer un
- ; retorno de carro en la salida por pantalla.
- MsgExito DB 'Se ha encontrado el fichero!!',0dh,0ah,'$'
- MsgFracaso DB 'No se ha encontrado el fichero!!',0dh,0ah,'$'
-
- ; Verdadero inicio.
- Inicio: MOV AX, 3D00h ; Seleccionamos la función de abrir
- ; fichero con atributo sólo lectura.
- MOV DX, Offset Fichero
- ; La palabra reservada offset se
- ; encarga de darnos la dirección de
- ; un determinado elemento.
- MOV BX, CS ; Como hay que pasar en DS el segmento
- MOV DS, BX ; donde está el nombre (recordad el
- ; número 3), lo tenemos que copiar
- ; indirectamente a través de BX ya que
- ; no se puede hacer MOV DS,CS.
- INT 21h ; Invocamos a la interrupción 21h
- JC NoExiste ; Si falla la llamada (no existe el
- ; fichero), la interrupción devuelve
- ; el flag de carry a 1 y con esta
- ; instrucción saltamos.
- MOV BX, AX ; En AX nos habrá devuelto un handle
- ; que lo pasaremos a la función de
- ; cierre en BX.
- MOV AH, 3Eh ; La función en concreto que necesitamos
- ; es la 3Eh.
- INT 21h ; Llamamos a la interrupción del DOS.
- MOV DX, Offset MsgExito
- ; En DS:DX tenemos que pasar a la
- ; función de escritura en pantalla
- ; la dirección de la cadena.
- Escribe: MOV AH, 09h ; Función de escritura.
- INT 21h ; Invocamos a la interrupción 21h
- MOV AX, 4C00h ; Función de finalización de programa.
- INT 21h ; Volvemos a invocar la interrupción
- ; del DOS.
-
- NoExiste: MOV DX, Offset MsgFracaso
- ; Se salta aquí en caso de no
- ; encontrarse el fichero. Cargamos la
- ; dirección de la cadena de fracaso...
- JMP Escribe ; y saltamos para escribirla.
-